天亮了 昨晚是平安夜
洛神:3號 8號平票,進入PK環節,3號開始發言
3號:現在也不能拍身份,怎麼辦??10號號剛定義8的身份也蠻怪的,而且10號賣視野跟我講說6號應該是好人,他哪來的視野說6號是好人,如果你們有兩狼是不是可以直接自爆了,對不對,8有投10我有看到,不然你們投我好了,我是好人可是我不想要輸,如果8號發言真的非常好的話,真的沒辦法,就這樣,8跟10都很奇怪,我在聽一次8好了,過
8號:好,我用我的視角跟想法,來就是說服大家看看,我覺得6號應該是狼走的,10號應該是最後一隻狼的原因是因為7號遺言5 6 有身份,所以5 6可能包一隻狼,那如果5 6包一隻狼的話,因為我覺得5號很好啊,然後6號的話就一定會進坑,然後我剛覺得3號會排進剛的狼坑的話因為沒有坑位了所以才會把3號排進來,但他剛表情很糾結,所以應該是個好人,我覺得3 8我們兩個都是好人,你們可能要想一下要怎麼贏,因為女巫還在,如果現在平票,女巫晚上可以把10毒了,因為只剩下一狼,但如果狼衝票就輸了,總之我覺得10號是最後一狼,6號是那個狼走的,就像3號號說的10號怎麼知道6號是好人呢?所以就試著平票,要嘛大家都棄票,晚上女巫去毒10號玩家,過了過了
洛神:第二輪 PK 3 2 1 請投票
棄票:2 5 10
圖片來源
洛神:今天是平安日,天黑請閉眼
待續..
那我們在解釋一下前天遇到的困境與列一下需求
在關連的對應關係
我們現在已有的table
其中最後需要的關聯大概會是這樣
所以前天遇到的困境是村莊的村民(:village)、村民身上的技能(:skill)與座位(:seat)
之間究竟該怎樣關聯
當初覺得使用者技能在不同的職業會有相同,可能需要獨立出來再做關聯
但是又卡到技能(:skill)如果跟村民(:village)分成兩張table,
架構上載似乎已經太複雜而且感覺也沒有必要,因為技能跟村民不會隨著遊戲進程而變動
所以透過昨天拖台錢、滑水關鍵
的策略模式
我們要同時整理
遊戲座位技能(:seat)、遊戲角色(:village)、技能(:skill)、遊戲回合(:game)這些table
怎麼做呢?
我們採用多對多的關聯, The has_many :through Association
來達成目前的目前的目標
/models/seat.rb
class Seat < ApplicationRecord
rolify
belongs_to :room
has_many :games
has_many :villages, through: :games
...
/models/village.rb
class Village < ApplicationRecord
has_many :games
has_many :seats, through: :games
end
因為還沒有commit到遠端
先直接還原昨天的db做一點點修正
$ bundle exec rake db:rollback
migrations/2021100614xxxx_create_villages.rb
class CreateVillages < ActiveRecord::Migration[6.1]
def change
create_table :villages do |t|
t.string :title
t.integer :role
t.integer :party
t.integer :skill
t.timestamps
end
end
end
建立新的關聯式資料庫
$ rails g model game
/models/game.rb
class Game < ApplicationRecord
belongs_to :seat
belongs_to :village
end
/migrations/2021100713xxxx_create_games.rb
class CreateGames < ActiveRecord::Migration[6.1]
def change
create_table :games do |t|
t.integer :round, default: 1
t.belongs_to :village, index: true
t.belongs_to :seat, index: true
t.timestamps
end
end
end
這麼一來就把遊戲座位技能(:seat)、遊戲角色(:village)、技能(:skill)、遊戲回合(:game)
資料庫暫時整合好囉
明天我們將透過這個關聯來分配角色給座位
$grt
天黑請閉眼